<?php
header('Content-type:text/html;charset=UTF-8');
/**
 * 名称：CommonAction
 * 描述：后台父类
 * 作者：lan 时间：2013-05-02
 * 版本号：V1.0.0
 * ========================历史版本=================================
 * 序号	 版本号 	日期			姓名	 	描述
 * 1 	V1.0.0 	2013-05-02 	lan  	后台父类
 * ========================历史版本=================================
 * 说明：请在有更改程序的时候修改以上注释
 */
class CommonAction extends Action {
	/**
     * mid
     * 访问者的id
     * @var mixed
     * @access protected
     */
    var $mid;
    
    /**
     * 表前缀
     */
    private $_dbPrefix = 'yl_';

    protected function _initialize() {
        $dbPrefix = C('DB_PREFIX');
        !empty($dbPrefix) && $this->_dbPrefix = $dbPrefix;
		import('ORG.Util.Cookie');
		// 用户权限检查
		if (C('USER_AUTH_ON') && !(MODULE_NAME==="Index"&&ACTION_NAME==="index") && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
			import('ORG.Util.RBAC');
			if (!RBAC :: AccessDecision()) {
				// 检查认证识别号
				if (!$_SESSION[C('USER_AUTH_KEY')]) {
					// 跳转到认证网关
// 					$this->redirect(C('USER_AUTH_GATEWAY'));
					echo '<script type="text/javascript">top.location.href="'.URL(C('USER_AUTH_GATEWAY')).'";</script>';
					exit;
				}
				// 没有权限 抛出错误
				if (C('RBAC_ERROR_PAGE')) {
					// 定义权限错误页面
					redirect(C('RBAC_ERROR_PAGE'));
				} else {
					if (C('GUEST_AUTH_ON')) {
						$this->redirect(C('USER_AUTH_GATEWAY'));
					}
					// 提示错误信息
					//$this->error ( L ( '_VALID_ACCESS_' ) );
					echo L('_VALID_ACCESS_').C('GUEST_AUTH_ON');
					exit ();
				}
			}
		}
		if(empty($_SESSION [C ( 'USER_AUTH_KEY' )])) {
			$this->mid = $_SESSION['mid'];
		} else {
			$this->mid = $_SESSION [C ( 'USER_AUTH_KEY' )];
		}
	}

	/**
	  +----------------------------------------------------------
	 * 列表数据分页显示
	  +----------------------------------------------------------
	 * @access protected
	 * @param Model   $model 实例化模型
	 * @param HashMap $map 查询条件
	 * @param int     $limit 每页显示的数据记录数
	 * @param string  $order 排序字段
	 * @param boolean $mark_is_read 是否标记为已读
	 * @return array
	 * @author corey <corey.erp@gmail.com>
	 */
	protected function _list($model, $map, $limit = 20, $order = '', $mark_is_read = false) {
		//取得满足条件的记录数
		$count = $model->where($map)->count();
		if ($count > 0) {
			import("ORG.Util.Page"); // 导入分页类
			//创建分页对象
			$p = new Page($count, $limit);
			//分页查询数据
			$voList = $model->where($map)->order($order)->limit($p->firstRow . ',' . $p->listRows)->select();
			//分页跳转的时候保证查询条件
			foreach ($map as $key => $val) {
				if (!is_array($val)) {
					$p->parameter .= "$key=" . urlencode($val) . "&";
				}
			}
			//分页显示
			$page = $p->show();
			//模板赋值显示
			$this->assign('list', $voList);
			$this->assign('order', $order);
			$this->assign("page", $page);
			$this->assign($_GET);
			return $voList;
		} else {
			$this->assign($_GET);
		}
	}
}
?>
